Many computer programs offer users the ability to write scripts using a scripting programming language to perform complicated or repetitive tasks. In some applications, scripts are written and interpreted within the environment of the computer program itself, and in other applications scripts are written within an authoring program for execution by another interpreting program, such as a browser. While scripting may extend the capabilities of many computer programs in powerful ways, the process of programming scripts is complicated and exacting, and often beyond the competency of the average user who is not a professional software developer. In the field of educational software, for example, learners often possess a passion for self-expression and representation of ideas that outpaces their familiarity with the exacting requirements of scripting programming languages, leaving them unsatisfied with their ability to represent their ideas using scripting tools of conventional software products.